#ifndef ELEMENT_HH
#define ELEMENT_HH

#include <string>
#include "actiondispatcher.hh"

/*
  Chaque instance est issue du ResourceLoader qui
  mappe le contenu de l'élément xml correspondant
*/
class Element {
private:
 
  int x_;
  int y_;
  int width_;
  int height_;
  
  /*
    Contient le path de l'image
  */
  std::string img_src_;

  std::string name_;
  ActionDispatcher actionDispatcher_;
public:
  /*
    Quand l'instance est créée via le ResourceLoader 
    il faut lui mettre son image avec
  */
  Element();
  ~Element();

  std::string getName();

  std::string getImgSrc();

  int getX();
  int getY();
  int getWidth();  
  int getHeight();
  ActionDispatcher getActionDispatcher();

  void setX(const int);
  void setY(const int);
  void setName(const std::string);
  void setWidth(const int);
  void setHeight(const int);
  void setImgSrc(const std::string);

  /*
    Le but est de passer les valeurs afin qu'elles soient juste
    copiées dans la map actions_ de l'ActionDispatcher. Sinon il
    faudrait obtenir l'adresse pour récupérer la liste d'actions
  */
  void addAction(std::string, int);
};
#endif
